package com.carter.springframework.beans.factory.config;

import com.carter.springframework.beans.exception.BeanException;

public interface BeanPostProcessor {
    /**
     * 在bean对象执行初始化方法之前执行此方法
     * @param bean
     * @param beanName
     * @return
     * @throws BeanException
     */
    Object postProcessBeforeInitialization(Object bean,String beanName) throws BeanException;

    /**
     * 在Bean对象执行初始化方法之后执行此方法
     * @param bean
     * @param beanName
     * @return
     * @throws BeanException
     */
    Object postProcessAfterInitialization(Object bean,String beanName) throws BeanException;

    boolean postProcessAfterInstantiation(Object bean, String beanName) throws BeanException;
}
